Option Explicit

'################################################################
' Descriptor
' 二元数据结构
' 可以保存任意类型的数据
'################################################################

'################################################################
' Field
'################################################################
Private k1 As Variant
Private k2 As Variant

'################################################################
' Property
'################################################################

Public Property Get Key1() As Variant
On Error GoTo catch
    Key1 = k1
    Exit Property
catch:
    Set Key1 = k1
End Property

Public Property Let Key1(ByRef o As Variant)
On Error GoTo catch
    k1 = o
    Exit Property
catch:
    Set k1 = o
End Property

Public Property Get Key2() As Variant
On Error GoTo catch
    Key2 = k2
    Exit Property
catch:
    Set Key2 = k2
End Property

Public Property Let Key2(ByRef o As Variant)
On Error GoTo catch
    k2 = o
    Exit Property
catch:
    Set k2 = o
End Property